package main

import "fmt"
import "sync"

/*
Mutex 是最简单的一种锁类型，同时也比较暴力，当一个goroutine获得了 Mutex 后，其他goroutine就只能乖乖等
到这个goroutine释放该 Mutex 。 RWMutex 相对友好些，是经典的单写多读模型。在读锁占用的情
况下，会阻止写，但不阻止读，也就是多个goroutine可同时获取读锁（调用 RLock() 方法；而写
锁（调用 Lock() 方法）会阻止任何其他goroutine（无论读和写）进来，整个锁相当于由该goroutine
独占。从 RWMutex 的实现看， RWMutex 类型其实组合了 Mutex ：
type RWMutex struct {
w Mutex
writerSem uint32
readerSem uint32
readerCount int32
readerWait int32
}*/
func main() {
	var l sync.Mutex
	func() {
		l.Lock()
		defer l.Unlock()
		fmt.Println("lock")
	}()
}
